package com.blumov.fastbox.webservices.dispatcher;

import javax.jws.WebService;

import com.blumov.fastbox.compra.PedidoDTO;
import com.blumov.fastbox.compra.TerminalDispatcherFacade;
import com.blumov.fastbox.compra.TerminalDispatcherFacadeImpl;
import com.blumov.fastbox.webservices.parsers.PedidoParser;

/**
 * 
 * @author Marcelo
 *
 */
@WebService(endpointInterface = "com.blumov.fastbox.webservices.dispatcher.TerminalDispatcherWS")
public class TerminalDispatcherWSImpl implements TerminalDispatcherWS {

	private PedidoParser pedidoParser;
	private TerminalDispatcherFacade facadeDispatcher;
	
	public TerminalDispatcherWSImpl() {
		this.pedidoParser = new PedidoParser();
		this.facadeDispatcher = new TerminalDispatcherFacadeImpl();
	}
	
	public String damePedido() {
		System.out.println("El dispatcher solicita un nuevo pedido.");
		PedidoDTO pedidoDTO = facadeDispatcher.traerPedido();
		return pedidoParser.parsePedidoDispatcher(pedidoDTO);
	}

	public void enviarPedidoACocina(String nroPedido) {
		System.out.println("El dispatcher solicita enviar el pedido " + nroPedido + " a cocina.");
		facadeDispatcher.enviarPedidoACocina(nroPedido);
	}

	public void pedidoCancelado(String nroPedido) {
		System.out.println("El pedido " + nroPedido + " fue cancelado por el dispatcher.");
		facadeDispatcher.cancelarPedido(nroPedido);
	}

	public void pedidoEntregado(String nroPedido) {
		System.out.println("El pedido " + nroPedido + " se entrego.");
		facadeDispatcher.pedidoEntregado(nroPedido);
	}

	public void pedidoListo(String nroPedido) {
		System.out.println("El pedido " + nroPedido + " esta listo para entregar.");
		facadeDispatcher.pedidoListo(nroPedido);
	}

}
